package main

import (
	"fmt"
	"math"
)

//给你一个字符串 s，找到 s 中最长的回文子串。
//
//示例 1：
//
//  输入：s = "babad"
//  输出："bab"
//  解释："aba" 同样是符合题意的答案。
//
//示例 2：
//
//  输入：s = "cbbd"
//  输出："bb"
//
//提示：
//
//  1 <= s.length <= 1000
//  s 仅由数字和英文字母组成

func main() {
	s := longestPalindrome("cbbd")
	fmt.Println(s)
}

func longestPalindrome(s string) string {
	var ans string
	length := len(s)
	max := 0.0
	for i := 0; i < length; i++ {
		for j := i + 1; j < length; j++ {
			test := s[i:j]
			if isSymmetry(test) && float64(len(test)) > max {
				ans = test
				max = math.Max(max, float64(len(test)))
			}
		}
	}
	return ans
}

func isSymmetry(s string) bool {
	length := len(s)
	for i := 0; i < length/2; i++ {
		if s[i] != s[length-i-1] {
			return false
		}
	}
	return true
}
